package com.topsec.manager.service;

import com.topsec.manager.controller.req.*;
import com.topsec.manager.entity.*;
import com.topsec.manager.vo.HttpxyVO;

import java.util.List;

import org.springframework.web.bind.annotation.RequestBody;

/**
 * @author zhaoys
 * @date 2017年7月22日 下午3:48:01
 */
public interface ReleaseServiceInter {
    void saveLogger(SystemLogger log);

    /**
     * 根据版本id查询版本
     *
     * @return 版本信息
     */
    List<VersionVo> findVersionByid(String id);

    /**
     * 查询所有版本信息
     *
     * @return 所有版本信息
     */
    List<VersionVo> findVersion(VersionReq v);

    /**
     * 根据工具id查询工具
     *
     * @return 所有工具信息 多个用#分割
     */
    List<ToolBo> findToolByid(String id);

    /**
     * 根据工具名称和url验证工具是否存在
     *
     * @param toolList
     * @return
     */
    String checkToolsRepeat(List<ToolReq> toolList);

    /**
     * 查询所有工具信息_疑似工具表
     *
     * @return 所有工具信息
     */
    List<ToolBo> findTool();

    /**
     * 查询所有工具信息_工具正式表
     *
     * @return 所有工具信息
     */
    List<ToolBo> findTool1();

    /**
     * 工具版本跟踪
     *
     * @param v
     */
    void versionFollowing(ToolReq v);

    /**
     * 多条工具跟踪(可能list中就工具分类不同，其他信息一样)
     *
     * @param vL
     */
    void versionFollowings(List<ToolReq> vL);

    /**
     * 获取 ssl证书 数据
     *
     * @param
     */
    List<SslCertQueryVO> getSslCertData(String s);

    /**
     * 获取 cHello 数据
     *
     * @param
     */
    List<CHelloQueryVO> getChelloData(String s);

    /**
     * 获取ssl数据
     *
     * @param
     */
    List<HttpxyVO> getHttpXyData(String s);

    /**
     * 保存工具
     *
     * @param t t
     */
    boolean saveTool(ToolReq t);

    /**
     * 保存工具版本
     *
     * @param t
     */
    void saveTVersion(VersionReq v);

    /**
     * 保存设备信息
     *
     * @param DeviceInfo d
     */
    void saveDeviceInfo(Sys_RunState d);

    /**
     * 保存有效资源
     *
     * @param c
     * @return
     */
    void saveCtresource(Ctresource c);

    /**
     * 添加工具测试结果
     *
     * @param t
     */
    void saveToolTest(ToolTestBean t);

    /**
     * 19保存版本穿透测试指令到send文件夹中
     *
     * @param sendct
     */
    void saveSendVersionTest(List<CTCSVersionReq> sendct);

    /**
     * 外网请求接V生成版本穿透测试指令
     *
     * @param resct
     */
    // void saveResVersionTest(CTCSVersionReq resct);
    void saveResVersionTest(List<CTCSVersionReq> resct);

    /**
     * 信工所更新Dns任务完成状态
     *
     * @param dReq
     */
    int upXinDnsTask(DnsAndIp_TaskReq dReq);


    /**
     * 天元特通更新Dns任务完成状态
     *
     * @param dReq
     */
    int upTianDnsTask(DnsAndIp_TaskReq dReq);


    /**
     * 根据 id 查询dns的对象
     *
     * @param id
     * @return
     */
    Task_DnsVo findDnsById(long id);


}
